﻿using System.Text.RegularExpressions;

namespace dpa.Library.Models;

public class AirportInfo
{
    // 日期
    public string Date { get; set; }
    
    /// <summary>
    /// 机场名称
    /// </summary>
    public string AirportName { get; set; }
    
    /// <summary>
    /// 1 机场放行正常统计表
    /// </summary>
    public FlightsReleased FlightsReleased { get; set; }
    
    /// <summary>
    /// 2 主时刻协调机场  机场起飞正常
    /// </summary>
    public AirportInitialFlight AirportInitialFlight { get; set; }
    
    /// <summary>
    /// 3 机场起飞正常
    /// </summary>
    public AirportInitialAllFlight AirportInitialAllFlight { get; set; }
    
    /// <summary>
    /// 4 千万级机场航班近机位靠桥率
    /// </summary>
    public AirportBridgingRate2 AirportBridgingRate2 { get; set; }
    
    /// <summary>
    /// 5 航空公司航班
    /// </summary>
    public AirlineFlights AirlineFlights { get; set; }
    
    /// <summary>
    /// 6 航司起飞正常
    /// </summary>
    public AirlineTakesOff AirlineTakesOff { get; set; }
    
    /// <summary>
    /// 7 航司延误时间统计
    /// </summary>
    public AirlineDelay AirlineDelay { get; set; }
    
    public List<AirlineDelay> AirlineDelays { get; set; }
    
    /// <summary>
    /// 8 机场滑行时间
    /// </summary>
    public AirportTaxiingExtraSlidingOutIn AirportTaxiingExtraSlidingOutIn { get; set; }
}

public partial class FlightsReleased
{
    [GeneratedRegex(@"机场放行")]
    public static partial Regex RegexText();
    
    public string SheetName { get; set; } = "disturbancenew";
    
    /// <summary>
    /// 放行航班数 1 D
    /// </summary>
    public string Date { get; set; }
    
    /// <summary>
    /// 放行航班数 6 C
    /// </summary>
    public int Count { get; set; }
    
    /// <summary>
    /// 放行正常率 6 G
    /// </summary>
    public decimal Rate { get; set; }
    
    /// <summary>
    /// 同比 6 U
    /// </summary>
    public decimal YearOnYearRate { get; set; }
    
    /// <summary>
    /// 环比 6 V
    /// </summary>
    public decimal MonthOnMonthRate { get; set; }

}

public partial class AirportInitialFlight
{
    [GeneratedRegex(@"主时刻协调")]
    public static partial Regex RegexText();
    
    public string SheetName { get; set; } = "airportintialflight";
    
    /// <summary>
    /// 计划航班数 5 D
    /// </summary>
    public int Count { get; set; }
    
    /// <summary>
    /// 起飞正常率 5 G
    /// </summary>
    public decimal Rate { get; set; }
    
    /// <summary>
    /// 同比 5 T
    /// </summary>
    public decimal YearOnYearRate { get; set; }
    
    /// <summary>
    /// 环比 5 U
    /// </summary>
    public decimal MonthOnMonthRate { get; set; }
}

public partial class AirportInitialAllFlight
{
    [GeneratedRegex(@"3机场起飞正常统计表")]
    public static partial Regex RegexText();
    
    public string SheetName { get; set; } = "airportintialAllflight";
    
    /// <summary>
    /// 起飞正常率 5 F
    /// </summary>
    public decimal Rate { get; set; }
    
    /// <summary>
    /// 同比 5 G
    /// </summary>
    public decimal YearOnYearRate { get; set; }
    
    /// <summary>
    /// 环比 5 H
    /// </summary>
    public decimal MonthOnMonthRate { get; set; }
}

public partial class AirportBridgingRate2
{
    [GeneratedRegex(@"千万级机场航班近机位靠桥率")]
    public static partial Regex RegexText();
    
    public string SheetName { get; set; } = "airportbridgingrate2";
    
    /// <summary>
    /// 离港正常率 4 E
    /// </summary>
    public decimal LeavePortRate { get; set; }
    
    /// <summary>
    /// 到港正常率 4 H
    /// </summary>
    public decimal ArrivePortRate { get; set; }
    
    /// <summary>
    /// 合计正常率 4 K
    /// </summary>
    public decimal TotalRate { get; set; }
    
    /// <summary>
    /// 同比 4 L
    /// </summary>
    public decimal YearOnYearRate { get; set; }
    
    /// <summary>
    /// 环比 4 M
    /// </summary>
    public decimal MonthOnMonthRate { get; set; }
}

public partial class AirlineFlights
{
    [GeneratedRegex(@"航空公司航班")]
    public static partial Regex RegexText();

    public string SheetName { get; set; } = "disturbancenew";
    
    /// <summary>
    /// 合计航班 41 C
    /// </summary>
    public int TotalCount { get; set; }
    
    /// <summary>
    /// 合计正常率 41 F
    /// </summary>
    public decimal TotalRate { get; set; }
    
    /// <summary>
    /// 同比 41 S
    /// </summary>
    public decimal YearOnYearRate { get; set; }
    
    /// <summary>
    /// 环比 41 T
    /// </summary>
    public decimal MonthOnMonthRate { get; set; }
}

public partial class AirlineTakesOff
{
    [GeneratedRegex(@"航司起飞正常")]
    public static partial Regex RegexText();
    
    public string SheetName { get; set; } = "airlineintialAllflight";
    
    /// <summary>
    /// 合计航班 41 C
    /// </summary>
    public int TotalCount { get; set; }
    
    /// <summary>
    /// 合计正常率 41 F
    /// </summary>
    public decimal TotalRate { get; set; }
    
    /// <summary>
    /// 同比 41 G
    /// </summary>
    public decimal YearOnYearRate { get; set; }
    
    /// <summary>
    /// 环比 41 H
    /// </summary>
    public decimal MonthOnMonthRate { get; set; }
}

public partial class AirlineDelay
{
    [GeneratedRegex(@"航空公司航班延误时间")]
    public static partial Regex RegexText();
    
    public string SheetName { get; set; } = "disturbancecompanydelay";
    
    public string AirlinCompany { get; set; }
    
    /// <summary>
    /// 小于30分钟 41 G
    /// </summary>
    public int LessThan30Min { get; set; }
    
    /// <summary>
    /// 小于30分钟 42 G
    /// </summary>
    public decimal LessThan30MinRate { get; set; }
    
    /// <summary>
    /// 30min-1h 41 H
    /// </summary>
    public int Between30MinTo1H { get; set; }
    
    /// <summary>
    /// 30min-1h 42 H
    /// </summary>
    public decimal Between30MinTo1HRate { get; set; }
    
    /// <summary>
    /// 1h-2h 41 I
    /// </summary>
    public int Between1HTo2H { get; set; }
    
    /// <summary>
    /// 1h-2h 42 I
    /// </summary>
    public decimal Between1HTo2HRate { get; set; }
    
    /// <summary>
    /// 2h-4H 41 J
    /// </summary>
    public int Between2HTo4H { get; set; }
    
    /// <summary>
    /// 2h-4H 42 J
    /// </summary>
    public decimal Between2HTo4HRate { get; set; }
    
    /// <summary>
    /// >4h 41 K
    /// </summary>
    public int MoreThan4H { get; set; }
    
    /// <summary>
    /// >4h 42 K
    /// </summary>
    public decimal MoreThan4HRate { get; set; }
    
    /// <summary>
    /// 平均延误时间 41 L
    /// </summary>
    public decimal AverageDelay { get; set; }
    
    /// <summary>
    /// 同比 41 M
    /// </summary>
    public decimal YearOnYearRate { get; set; }
    
    /// <summary>
    /// 环比 41 N
    /// </summary>
    public decimal MonthOnMonthRate { get; set; }
}

public partial class AirportTaxiingExtraSlidingOutIn
{
    [GeneratedRegex(@"机场滑行时间")]
    public static partial Regex RegexText();
    
    public string SheetName { get; set; } = "airportTaxiingExtraSlidingOutIn";
    
    public string Airport { get; set; }
    
    /// <summary>
    /// 滑出平均时间 6 D
    /// </summary>
    public decimal OutAverageTime { get; set; }
    
    /// <summary>
    /// 滑出同比 6 E
    /// </summary>
    public decimal OutYearOnYearRate { get; set; }
    
    /// <summary>
    /// 滑出环比 6 F
    /// </summary>
    public decimal OutMonthOnMonthRate { get; set; }
    
    /// <summary>
    /// 滑入平均时间 6 J
    /// </summary>
    public decimal InAverageTime { get; set; }
    
    /// <summary>
    /// 滑入同比 6 K
    /// </summary>
    public decimal InYearOnYearRate { get; set; }
    
    /// <summary>
    /// 滑入环比 6 L
    /// </summary>
    public decimal InMonthOnMonthRate { get; set; }
}